Appearance
startUpdateLocation
디바이스의 위치 정보를 지속적으로 감지하고, 위치가 변경되면 콜백을 실행하는 함수예요. 콜백 함수를 등록하면 위치가 변경될 때마다 자동으로 호출돼요. 실시간 위치 추적이 필요한 기능을 구현할 때 사용할 수 있어요. 예를 들어 지도 앱에서 사용자의 현재 위치를 실시간으로 업데이트할 때, 운동 앱에서 사용자의 이동 거리를 기록할 때 등이에요. 위치 업데이트 주기와 정확도를 조정해 배터리 소모를 최소화하면서도 필요한 정보를 얻을 수 있어요.
시그니처
typescript
function startUpdateLocation(eventParams: {
onEvent: (response: Location) => void;
onError: (error: unknown) => void;
options: StartUpdateLocationOptions;
}): () => void;
파라미터
- options필수 · StartUpdateLocationOptions
위치 정보 감지에 필요한 설정 객체에요.
- options.accuracynumber
위치 정확도를 설정해요.
- options.timeIntervalnumber
위치 정보를 업데이트하는 최소 주기로, 단위는 밀리초(ms)예요. 이 값은 위치 업데이트가 발생하는 가장 짧은 간격을 설정하지만, 시스템이나 환경의 영향을 받아 지정한 주기보다 더 긴 간격으로 업데이트될 수 있어요.
- options.distanceIntervalnumber
위치 변경 거리를 미터(m) 단위로 설정해요.
- options.callback(location: Location) => void
위치 정보가 변경될 때 호출되는 콜백 함수예요. 자세한 내용은 Location을 참고해주세요.
- options.accuracynumber
예제
위치 정보 변경 감지하기
tsx
import React, { useState, useEffect } from 'react';
import { View, Text, Button } from 'react-native';
import { startUpdateLocation } from '@apps-in-toss/framework';
// 위치 정보 변경 감지하기
function LocationWatcher() {
const [location, setLocation] = useState(null);
useEffect(() => {
return startUpdateLocation({
options: {
accuracy: Accuracy.Balanced,
timeInterval: 3000,
distanceInterval: 10,
},
onEvent: (location) => {
setLocation(location);
},
onError: (error) => {
console.error('위치 정보를 가져오는데 실패했어요:', error);
},
});
}, []);
if (location == null) {
return <Text>위치 정보를 가져오는 중이에요...</Text>;
}
return (
<View>
<Text>위도: {location.coords.latitude}</Text>
<Text>경도: {location.coords.longitude}</Text>
<Text>위치 정확도: {location.coords.accuracy}m</Text>
<Text>높이: {location.coords.altitude}m</Text>
<Text>고도 정확도: {location.coords.altitudeAccuracy}m</Text>
<Text>방향: {location.coords.heading}°</Text>
</View>
);
}